1. Field of the Invention
The invention relates to multiprocessor computer systems, and more particularly, to a symmetric multiprocessor computer system which emulates an asymmetric multiprocessor computer system.
2. Description of the Related Art
Microprocessors have seen rapid improvements in speed and performance. For example, the latest generation of microprocessors from Intel Corporation include the Pentium processors, which contain significant enhancements over the prior generation 486 processors. Even with the rapid improvements in microprocessor performance, however, resource requirements of software applications are always increasing, which in turn drives the need for the design and development of ever more powerful and efficient computer systems.
One well known method of improving computer performance is to provide multiple processors in a single system. Both asymmetrical and symmetrical multiprocessor systems have been developed. In asymmetrical multiprocessor systems, one microprocessor is the master and another microprocessor performs specific functions as a slave of the master microprocessor. In this configuration, the slave processor performs only operations designated by the master processor.
The symmetrical multiprocessor system is more efficient then the asymmetrical system, as tasks are more evenly divided between the processors. Thus, in a symmetrical system, any processor can perform any required function. Thus, all microprocessors operate simultaneously, spending little or no idle time, and the computer system operates near its maximum efficiency. However, although symmetrical multiprocessor systems are efficient, they are also very difficult to design, thereby adding to their cost and complexity. As a result, only very high end users can afford symmetrical multiprocessing systems.
To alleviate design complexities of multiprocessor systems, Intel has developed the Pentium P54C and P54CM processors. The P54C and P54CM processors integrate logic necessary for a dual processor system, each including an on-chip advanced programmable interrupt controller (APIC). The local APICs support multiprocessor interrupt management, multiple I/O subsystem support, compatibility with the EISA 8259 interrupt controllers, and interprocessor interrupts between the two processors.
The APIC is a standardized approach developed by Intel for symmetric multiprocessing. It allows any interrupt to be serviced by any CPU. The APIC architecture is implemented in two pieces: an "I/O APIC" resides close to the I/O subsystem and a "local APIC" is implemented inside the P54C or P54CM processors. The I/O APIC contains edge/level and input polarity logic, and tables to allow individual interrupts to be addressed to one or more CPUs at various interrupt priorities. The local APIC is implemented inside each of the P54C or P54CM processors and receives interrupt messages from the I/O APIC and keeps track of which interrupts are in service by each CPU. The local APICs are also responsible for sending special interprocessor interrupt (IPI) messages over an APIC bus to the other CPU to accomplish special functions. Thus, on a dual processor board utilizing a P54C processor and a P54CM processor, the two processors can be directly connected to the processor bus without the need for additional logic. This highly integrated solution greatly simplifies the design of dual processor systems.
While symmetric multiprocessors offer great advantages, one problem that currently exists is a relative lack of software to utilize the fully symmetric nature. The first multiprocessor personal computer was the Compaq Systempro, introduced in November 1989. The Systempro was an asymmetric multiprocessor, where the first or primary processor, referred to as P1, handled all of the system interrupts, with the secondary processor P2 only receiving numeric coprocessor error interrupts and interprocessor interrupts. The Systempro included a series of processor and interprocessor communication registers, to control operation of each processor and to allow communication between the processors. Because it was the first multiprocessing personal computer, and other multiprocessing personal computers did not appear for many years, such as the middle to end of 1992, a large amount of software was developed for the Systempro, its asymmetric nature and its specific register configuration.
Today symmetric multiprocessors are readily available, but as noted, there is a lack of software to use the multiprocessing nature. Much of the multiprocessing software available is Systempro software, but the symmetric versus asymmetric natures and register differences very much limit the use of the Systempro software. Therefore it is desirable to allow a symmetric multiprocessing system, especially one developed with the P54C and P54CM and APICs, to emulate the Systempro to allow use of a large amount of existing software.